<?php

namespace App\Logics;

use App\Models\News;
use App\Service\Base\Logic;

class PushLogic extends Logic
{


    // 推送
    // 通过页面设置推送

    // 查询


    // 设置邮件推送
    // 取消邮件推送
    public function toEmail()
    {
        $opt = $this->option();
        $id  = $opt->getData('id', 0, 'intval');

        // 查询数据
        $status = $opt->getData('status', 0, 'intval');
        $newsDb = new News();
        $info   = $newsDb->where('id', $id)->first();
        if(empty($info)){
            return $this->_returnFail('data_has_not_exist');
        }

        // 判断状态
        if($status == 1){
            $email_time = LARAVEL_TIME;
            if($info['is_email'] == 1){
                return $this->_returnFail('已经设置为推送！');
            }
        } else{
            $email_time = 0;
            if($info['uid'] > 0){
                return $this->_returnFail('后台发布的文章必须推送！');
            }
            if($info['is_email'] == 0){
                return $this->_returnFail('已经设置不推送！');
            }
        }


        // 设置为邮件推送
        $newsDb->where('id', $id)->update(['is_email' => $status, 'email_time' => $email_time]);
        // 删除缓存
        $newsDb->deleteCacheShow($info);

        return $status;
    }


}


